Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Vector quantization</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Vector_quantization"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Vector_quantization rootpage-Vector_quantization skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Vector quantization</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */


.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}


/* end https://en.wikipedia.org/ */
</style>
<p><b>Vector quantization</b> (<b>VQ</b>) is a classical <a href="Quantization_(signal_processing)" title="Quantization (signal processing)">quantization</a> technique from <a href="Signal_processing" title="Signal processing">signal processing</a> that allows the modeling of <a href="Probability_density_functions" class="mw-redirect" title="Probability density functions">probability density functions</a> by the distribution of prototype vectors. Developed in the early 1980s by <a href="Robert_M._Gray" title="Robert M. Gray">Robert M. Gray</a>, it was originally used for <a href="Data_compression" title="Data compression">data compression</a>. It works by dividing a large set of points (<a href="Coordinate_vector" title="Coordinate vector">vectors</a>) into groups having approximately the same number of points closest to them. Each group is represented by its <a href="Centroid" title="Centroid">centroid</a> point, as in <a href="K-means" class="mw-redirect" title="K-means">k-means</a> and some other <a href="Cluster_analysis" title="Cluster analysis">clustering</a> algorithms. In simpler terms, vector quantization chooses a set of points to represent a larger set of points.
</p><p>The density matching property of vector quantization is powerful, especially for identifying the density of large and high-dimensional data. Since data points are represented by the index of their closest centroid, commonly occurring data have low error, and rare data high error. This is why VQ is suitable for <a href="Lossy_data_compression" class="mw-redirect" title="Lossy data compression">lossy data compression</a>. It can also be used for lossy data correction and <a href="Density_estimation" title="Density estimation">density estimation</a>.
</p><p>Vector quantization is based on the <a href="Competitive_learning" title="Competitive learning">competitive learning</a> paradigm, so it is closely related to the <a href="Self-organizing_map" title="Self-organizing map">self-organizing map</a> model and to <a href="Sparse_coding" class="mw-redirect" title="Sparse coding">sparse coding</a> models used in <a href="Deep_learning" title="Deep learning">deep learning</a> algorithms such as <a href="Autoencoder" title="Autoencoder">autoencoder</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Training">Training</h2></div>
<p>The simplest training algorithm for vector quantization is:<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p>
<ol><li>Pick a sample point at random</li>
<li>Move the nearest quantization vector centroid towards this sample point, by a small fraction of the distance</li>
<li>Repeat</li></ol>
<p>A more sophisticated algorithm reduces the bias in the density matching estimation, and ensures that all points are used, by including an extra sensitivity parameter :
</p>
<ol><li>Increase each centroid's sensitivity <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle s_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>s</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle s_{i}}</annotation>
</semantics>
</math></span><img src="./cfda82668232cbdc0874ed28ab8b6079420d1ffe.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.89ex; height:2.009ex;" alt="{\displaystyle s_{i}}" loading="lazy"></span> by a small amount</li>
<li>Pick a sample point <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P}</annotation>
</semantics>
</math></span><img src="./b4dc73bf40314945ff376bd363916a738548d40a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.745ex; height:2.176ex;" alt="{\displaystyle P}" loading="lazy"></span> at random</li>
<li>For each quantization vector centroid <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c_{i}}</annotation>
</semantics>
</math></span><img src="./01acb7953ba52c2aa44264b5d0f8fd223aa178a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.807ex; height:2.009ex;" alt="{\displaystyle c_{i}}" loading="lazy"></span>, let <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle d(P,c_{i})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>d</mi>
<mo stretchy="false">(</mo>
<mi>P</mi>
<mo>,</mo>
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle d(P,c_{i})}</annotation>
</semantics>
</math></span><img src="./bb9b50bebc7796227121e90e8b49aebc3e26139c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:7.611ex; height:2.843ex;" alt="{\displaystyle d(P,c_{i})}" loading="lazy"></span> denote the distance of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P}</annotation>
</semantics>
</math></span><img src="./b4dc73bf40314945ff376bd363916a738548d40a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.745ex; height:2.176ex;" alt="{\displaystyle P}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c_{i}}</annotation>
</semantics>
</math></span><img src="./01acb7953ba52c2aa44264b5d0f8fd223aa178a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.807ex; height:2.009ex;" alt="{\displaystyle c_{i}}" loading="lazy"></span></li>
<li>Find the centroid <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c_{i}}</annotation>
</semantics>
</math></span><img src="./01acb7953ba52c2aa44264b5d0f8fd223aa178a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.807ex; height:2.009ex;" alt="{\displaystyle c_{i}}" loading="lazy"></span> for which <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle d(P,c_{i})-s_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>d</mi>
<mo stretchy="false">(</mo>
<mi>P</mi>
<mo>,</mo>
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo>−<!-- − --></mo>
<msub>
<mi>s</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle d(P,c_{i})-s_{i}}</annotation>
</semantics>
</math></span><img src="./768c3155883e725925df98f7f8e718b2bce5e466.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:12.342ex; height:2.843ex;" alt="{\displaystyle d(P,c_{i})-s_{i}}" loading="lazy"></span> is the smallest</li>
<li>Move <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>c</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle c_{i}}</annotation>
</semantics>
</math></span><img src="./01acb7953ba52c2aa44264b5d0f8fd223aa178a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.807ex; height:2.009ex;" alt="{\displaystyle c_{i}}" loading="lazy"></span> towards <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle P}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>P</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle P}</annotation>
</semantics>
</math></span><img src="./b4dc73bf40314945ff376bd363916a738548d40a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.745ex; height:2.176ex;" alt="{\displaystyle P}" loading="lazy"></span> by a small fraction of the distance</li>
<li>Set <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle s_{i}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>s</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle s_{i}}</annotation>
</semantics>
</math></span><img src="./cfda82668232cbdc0874ed28ab8b6079420d1ffe.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.89ex; height:2.009ex;" alt="{\displaystyle s_{i}}" loading="lazy"></span> to zero</li>
<li>Repeat</li></ol>
<p>It is desirable to use a cooling schedule to produce convergence: see <a href="Simulated_annealing" title="Simulated annealing">Simulated annealing</a>. Another (simpler) method is <a href="Linde%E2%80%93Buzo%E2%80%93Gray_algorithm" title="Linde–Buzo–Gray algorithm">LBG</a> which is based on <a href="K-means_clustering" title="K-means clustering">K-Means</a>.
</p><p>The algorithm can be iteratively updated with 'live' data, rather than by picking random points from a data set, but this will introduce some bias if the data are temporally correlated over many samples.
</p>
<div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2></div>
<p>Vector quantization is used for lossy data compression, lossy data correction, pattern recognition, density estimation and clustering.
</p><p>Lossy data correction, or prediction, is used to recover data missing from some dimensions. It is done by finding the nearest group with the data dimensions available, then predicting the result based on the values for the missing dimensions, assuming that they will have the same value as the group's centroid.
</p><p>For <a href="Density_estimation" title="Density estimation">density estimation</a>, the area/volume that is closer to a particular centroid than to any other is inversely proportional to the density (due to the density matching property of the algorithm).
</p>
<div class="mw-heading mw-heading3"><h3 id="Use_in_data_compression">Use in data compression</h3></div>
<p>Vector quantization, also called "block quantization" or "pattern matching quantization" is often used in <a href="Lossy_data_compression" class="mw-redirect" title="Lossy data compression">lossy data compression</a>. It works by encoding values from a multidimensional <a href="Vector_space" title="Vector space">vector space</a> into a finite set of values from a discrete <a href="Linear_subspace" title="Linear subspace">subspace</a> of lower dimension. A lower-space vector requires less storage space, so the data is compressed. Due to the density matching property of vector quantization, the compressed data has errors that are inversely proportional to density.
</p><p>The transformation is usually done by <a href="Projection_(mathematics)" title="Projection (mathematics)">projection</a> or by using a <a href="Codebook" title="Codebook">codebook</a>. In some cases, a codebook can be also used to <a href="Entropy_code" class="mw-redirect" title="Entropy code">entropy code</a> the discrete value in the same step, by generating a <a href="Prefix_code" title="Prefix code">prefix coded</a> variable-length encoded value as its output.
</p><p>The set of discrete amplitude levels is quantized jointly rather than each sample being quantized separately. Consider a <i>k</i>-dimensional vector <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [x_{1},x_{2},...,x_{k}]}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">[</mo>
<msub>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>,</mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>,</mo>
<msub>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>k</mi>
</mrow>
</msub>
<mo stretchy="false">]</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle [x_{1},x_{2},...,x_{k}]}</annotation>
</semantics>
</math></span><img src="./84eac9b7babeff2699602334fb6c9201dd92065c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.684ex; height:2.843ex;" alt="{\displaystyle [x_{1},x_{2},...,x_{k}]}" loading="lazy"></span> of amplitude levels. It is compressed by choosing the nearest matching vector from a set of <i>n</i>-dimensional vectors <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [y_{1},y_{2},...,y_{n}]}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">[</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>,</mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>,</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">]</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle [y_{1},y_{2},...,y_{n}]}</annotation>
</semantics>
</math></span><img src="./c3aa2e225931296543229655e28e2df3dcc1a4e6.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.242ex; height:2.843ex;" alt="{\displaystyle [y_{1},y_{2},...,y_{n}]}" loading="lazy"></span>, with <i>n</i> &lt; <i>k</i>.
</p><p>All possible combinations of the <i>n</i>-dimensional vector <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle [y_{1},y_{2},...,y_{n}]}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo stretchy="false">[</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
<mo>,</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msub>
<mo>,</mo>
<mo>.</mo>
<mo>.</mo>
<mo>.</mo>
<mo>,</mo>
<msub>
<mi>y</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">]</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle [y_{1},y_{2},...,y_{n}]}</annotation>
</semantics>
</math></span><img src="./c3aa2e225931296543229655e28e2df3dcc1a4e6.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.242ex; height:2.843ex;" alt="{\displaystyle [y_{1},y_{2},...,y_{n}]}" loading="lazy"></span> form the <a href="Vector_space" title="Vector space">vector space</a> to which all the quantized vectors belong.
</p><p>Only the index of the codeword in the codebook is sent instead of the quantized values. This conserves space and achieves more compression.
</p><p><a href="TwinVQ#TwinVQ_in_MPEG-4" title="TwinVQ">Twin vector quantization</a> (VQF) is part of the <a href="MPEG-4" title="MPEG-4">MPEG-4</a> standard dealing with time domain weighted interleaved vector quantization.
</p>
<div class="mw-heading mw-heading3"><h3 id="Video_codecs_based_on_vector_quantization">Video codecs based on vector quantization</h3></div>

<ul><li><a href="Bink_video" class="mw-redirect" title="Bink video">Bink video</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Cinepak" title="Cinepak">Cinepak</a></li>
<li><a href="Daala" title="Daala">Daala</a> is transform-based but uses <a href="Pyramid_vector_quantization" title="Pyramid vector quantization">pyramid vector quantization</a> on transformed coefficients<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Digital_Video_Interactive" title="Digital Video Interactive">Digital Video Interactive</a>: Production-Level Video and Real-Time Video</li>
<li><a href="Indeo" title="Indeo">Indeo</a></li>
<li><a href="Microsoft_Video_1" title="Microsoft Video 1">Microsoft Video 1</a></li>
<li><a href="QuickTime#QuickTime_1.x" title="QuickTime">QuickTime</a>: <a href="Apple_Video" title="Apple Video">Apple Video</a> (RPZA) and <a href="QuickTime_Graphics_Codec" class="mw-redirect" title="QuickTime Graphics Codec">Graphics Codec</a> (SMC)</li>
<li><a href="Sorenson_codec" class="mw-redirect" title="Sorenson codec">Sorenson</a> SVQ1 and SVQ3</li>
<li><a href="Smacker_video" title="Smacker video">Smacker video</a></li>
<li><a href=".VQA" class="mw-redirect" title=".VQA">VQA</a> format, used in many games</li></ul>
<p>The usage of video codecs based on vector quantization has declined significantly in favor of those based on <a href="Motion_compensation#Block_motion_compensation" title="Motion compensation">motion compensated</a> prediction combined with <a href="Transform_coding#Digital" title="Transform coding">transform coding</a>, e.g. those defined in <a href="MPEG" class="mw-redirect" title="MPEG">MPEG</a> standards, as the low decoding complexity of vector quantization has become less relevant.
</p>
<div class="mw-heading mw-heading3"><h3 id="Audio_codecs_based_on_vector_quantization">Audio codecs based on vector quantization</h3></div>

<ul><li><a href="AMR-WB%2B" class="mw-redirect" title="AMR-WB+">AMR-WB+</a></li>
<li><a href="CELP" class="mw-redirect" title="CELP">CELP</a></li>
<li><a href="CELT" title="CELT">CELT</a> (now part of <a href="Opus_(codec)" class="mw-redirect" title="Opus (codec)">Opus</a>) is transform-based but uses <a href="Pyramid_vector_quantization" title="Pyramid vector quantization">pyramid vector quantization</a> on transformed coefficients</li>
<li><a href="Codec_2" title="Codec 2">Codec 2</a></li>
<li><a href="DTS_Coherent_Acoustics" class="mw-redirect" title="DTS Coherent Acoustics">DTS</a></li>
<li><a href="G.729" title="G.729">G.729</a></li>
<li><a href="ILBC" class="mw-redirect" title="ILBC">iLBC</a></li>
<li><a href="Ogg_Vorbis" class="mw-redirect" title="Ogg Vorbis">Ogg Vorbis</a><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li>
<li><a href="TwinVQ" title="TwinVQ">TwinVQ</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Use_in_pattern_recognition">Use in pattern recognition</h3></div>
<p>VQ was also used in the eighties for speech<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> and <a href="Speaker_recognition" title="Speaker recognition">speaker recognition</a>.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
Recently it has also been used for efficient <a href="Nearest_neighbor_search" title="Nearest neighbor search">nearest neighbor search</a>
<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
and on-line signature recognition.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
In <a href="Pattern_recognition" title="Pattern recognition">pattern recognition</a> applications, one codebook is constructed for each class (each class being a user in biometric applications) using acoustic vectors of this user. In the testing phase the quantization distortion of a testing signal is worked out with the whole set of codebooks obtained in the training phase. The codebook that provides the smallest vector quantization distortion indicates the identified user.
</p><p>The main advantage of VQ in <a href="Pattern_recognition" title="Pattern recognition">pattern recognition</a> is its low computational burden when compared with other techniques such as <a href="Dynamic_time_warping" title="Dynamic time warping">dynamic time warping</a> (DTW) and <a href="Hidden_Markov_model" title="Hidden Markov model">hidden Markov model</a> (HMM). The main drawback when compared to DTW and HMM is that it does not take into account the temporal evolution of the signals (speech, signature, etc.) because all the vectors are mixed up. In order to overcome this problem a multi-section codebook approach has been proposed.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> The multi-section approach consists of modelling the signal with several sections (for instance, one codebook for the initial part, another one for the center and a last codebook for the ending part).
</p>
<div class="mw-heading mw-heading3"><h3 id="Use_as_clustering_algorithm">Use as clustering algorithm</h3></div>
<p>As VQ is seeking for centroids as density points of nearby lying samples, it can be also directly used as a prototype-based clustering method: each centroid is then associated with one prototype.
By aiming to minimize the expected squared quantization error<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> and introducing a decreasing learning gain fulfilling the Robbins-Monro conditions, multiple iterations over the whole data set with a concrete but fixed number of prototypes converges to the solution of <a href="K-means" class="mw-redirect" title="K-means">k-means</a> clustering algorithm in an incremental manner.
</p>
<div class="mw-heading mw-heading3"><h3 id="Generative_Adversarial_Networks_(GAN)">Generative Adversarial Networks (GAN)</h3></div>
<p>VQ has been used to quantize a feature representation layer in the discriminator of <a href="Generative_adversarial_network" title="Generative adversarial network">Generative adversarial networks</a>. The feature quantization (FQ) technique performs implicit feature matching.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> It improves the GAN training, and yields an improved performance on a variety of popular GAN models: BigGAN for image generation, StyleGAN for face synthesis, and U-GAT-IT for unsupervised image-to-image translation.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<p><b>Subtopics</b>
</p>
<style data-mw-deduplicate="TemplateStyles:r1184024115">
/* start https://en.wikipedia.org/ */


.mw-parser-output .div-col{margin-top:0.3em;column-width:30em}.mw-parser-output .div-col-small{font-size:90%}.mw-parser-output .div-col-rules{column-rule:1px solid #aaa}.mw-parser-output .div-col dl,.mw-parser-output .div-col ol,.mw-parser-output .div-col ul{margin-top:0}.mw-parser-output .div-col li,.mw-parser-output .div-col dd{page-break-inside:avoid;break-inside:avoid-column}


/* end https://en.wikipedia.org/ */
</style><div class="div-col" style="column-width: 40em;">
<ul><li><a href="Linde%E2%80%93Buzo%E2%80%93Gray_algorithm" title="Linde–Buzo–Gray algorithm">Linde–Buzo–Gray algorithm</a> (LBG)</li>
<li><a href="Learning_vector_quantization" title="Learning vector quantization">Learning vector quantization</a></li>
<li><a href="Lloyd's_algorithm" title="Lloyd's algorithm">Lloyd's algorithm</a></li>
<li><a href="Neural_gas" title="Neural gas">Growing Neural Gas</a>, a neural network-like system for vector quantization</li></ul>
</div>
<p><b>Related topics</b>
</p>
<div class="div-col" style="column-width: 40em;">
<ul><li><a href="Speech_coding" title="Speech coding">Speech coding</a></li>
<li><a href="Ogg_Vorbis" class="mw-redirect" title="Ogg Vorbis">Ogg Vorbis</a></li>
<li><a href="Voronoi_diagram" title="Voronoi diagram">Voronoi diagram</a></li>
<li><a href="Rate-distortion_function" class="mw-redirect" title="Rate-distortion function">Rate-distortion function</a></li>
<li><a href="Data_clustering" class="mw-redirect" title="Data clustering">Data clustering</a></li>
<li><a href="Centroidal_Voronoi_tessellation" title="Centroidal Voronoi tessellation">Centroidal Voronoi tessellation</a></li>
<li><a href="Image_segmentation" title="Image segmentation">Image segmentation</a></li>
<li><a href="K-means_clustering" title="K-means clustering">K-means clustering</a></li>
<li><a href="Autoencoder" title="Autoencoder">Autoencoder</a></li>
<li><a href="Deep_Learning" class="mw-redirect" title="Deep Learning">Deep Learning</a></li></ul>
</div>
<p><i>Part of this article was originally based on material from the <a href="Free_On-line_Dictionary_of_Computing" title="Free On-line Dictionary of Computing">Free On-line Dictionary of Computing</a> and is used with permission under the GFDL.</i>
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFDana_H._Ballard2000" class="citation book cs1">Dana H. Ballard (2000). <i>An Introduction to Natural Computation</i>. MIT Press. p.&nbsp;189. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0-262-02420-4</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://lists.mplayerhq.hu/pipermail/bow/2009-December/000058.html">"Bink video"</a>. <i>Book of Wisdom</i>. 2009-12-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-03-16</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFValin2012" class="citation cs1">Valin, JM. (October 2012). <a rel="nofollow" class="external text" href="https://tools.ietf.org/html/draft-valin-videocodec-pvq-00"><i>Pyramid Vector Quantization for Video Coding</i></a>. <a href="Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. I-D draft-valin-videocodec-pvq-00<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-12-17</span></span>.</cite> See also arXiv:1602.05209</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">
<cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://xiph.org/vorbis/doc/Vorbis_I_spec.html">"Vorbis I Specification"</a>. Xiph.org. 2007-03-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-03-09</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFBurtonShore,_J._E.Buck,_J._T.1983" class="citation book cs1">Burton, D. K.; Shore, J. E.; Buck, J. T. (1983). "A generalization of isolated word recognition using vector quantization". <i>ICASSP '83. IEEE International Conference on Acoustics, Speech, and Signal Processing</i>. Vol.&nbsp;8. pp.&nbsp;<span class="nowrap">1021–</span>1024. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FICASSP.1983.1171915">10.1109/ICASSP.1983.1171915</a>.</cite></span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><cite id="CITEREFSoongA._RosenbergL._RabinerB._Juang1985" class="citation book cs1">Soong, F.; A. Rosenberg; L. Rabiner; B. Juang (1985). "A vector quantization approach to speaker recognition". <i>ICASSP '85. IEEE International Conference on Acoustics, Speech, and Signal Processing</i>. Vol.&nbsp;1. pp.&nbsp;<span class="nowrap">387–</span>390. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FICASSP.1985.1168412">10.1109/ICASSP.1985.1168412</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:8970593">8970593</a>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><cite id="CITEREFH._JegouM._DouzeC._Schmid2011" class="citation journal cs1">H. Jegou; M. Douze; C. Schmid (2011). <a rel="nofollow" class="external text" href="http://hal.archives-ouvertes.fr/docs/00/51/44/62/PDF/paper_hal.pdf">"Product Quantization for Nearest Neighbor Search"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Transactions on Pattern Analysis and Machine Intelligence</i>. <b>33</b> (1): <span class="nowrap">117–</span>128. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.470.8573">10.1.1.470.8573</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTPAMI.2010.57">10.1109/TPAMI.2010.57</a>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a>&nbsp;<a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/21088323">21088323</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:5850884">5850884</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111217142048/http://hal.archives-ouvertes.fr/docs/00/51/44/62/PDF/paper_hal.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2011-12-17.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite id="CITEREFFaundez-Zanuy2007" class="citation journal cs1">Faundez-Zanuy, Marcos (2007). "offline and On-line signature recognition based on VQ-DTW". <i>Pattern Recognition</i>. <b>40</b> (3): <span class="nowrap">981–</span>992. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.patcog.2006.06.007">10.1016/j.patcog.2006.06.007</a>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFFaundez-ZanuyJuan_Manuel_Pascual-Gaspar2011" class="citation journal cs1">Faundez-Zanuy, Marcos; Juan Manuel Pascual-Gaspar (2011). "Efficient On-line signature recognition based on Multi-section VQ". <i>Pattern Analysis and Applications</i>. <b>14</b> (1): <span class="nowrap">37–</span>45. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2Fs10044-010-0176-8">10.1007/s10044-010-0176-8</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:24868914">24868914</a>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFGray1984" class="citation journal cs1">Gray, R.M. (1984). "Vector Quantization". <i>IEEE ASSP Magazine</i>. <b>1</b> (2): <span class="nowrap">4–</span>29. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Fmassp.1984.1162229">10.1109/massp.1984.1162229</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">Feature Quantization Improves GAN Training <a rel="nofollow" class="external free" href="https://arxiv.org/abs/2004.02088">https://arxiv.org/abs/2004.02088</a></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external free" href="http://www.data-compression.com/vq.html">http://www.data-compression.com/vq.html</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20171210201342/http://www.data-compression.com/vq.html">Archived</a> 2017-12-10 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li>
<li><a rel="nofollow" class="external text" href="https://qccpack.sourceforge.net">QccPack — Quantization, Compression, and Coding Library (open source)</a></li>
<li><a rel="nofollow" class="external text" href="https://dl.acm.org/citation.cfm?id=1535126">VQ Indexes Compression and Information Hiding Using Hybrid Lossless Index Coding</a>, Wen-Jan Chen and Wen-Tsung Huang</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-08" href="https://en.wikipedia.org/wiki/?title=Vector_quantization&amp;oldid=1299435568">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>